package cn.tedu.springmvc.controller;

import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/*
统一处理异常
 */
@RestControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler({NumberFormatException.class, NullPointerException.class})
    public String handleNullPointException(Throwable e) {
        return "Error , NullPointerException or NumberFormatException";
    }
//在开发实践中，建议为每一个@ExceptionHandler配置注解参数，在注解参数中指定需要处理异常的类型，而处理异常的方法的参数直接使用Throwable即可。
    @ExceptionHandler(ClassCastException.class)
    public String classCastException(Throwable e) {
        return "Error,ClassCastException";
    }


    //在开发实践中，通常都会有handleThrowable()方法，以避免某个异常没有被处理而导致500错误！
    @ExceptionHandler(Throwable.class)
    public String handleThrowable(Throwable e) {
        e.printStackTrace();
        return "Error,Throwable!";
    }
}
